package com.yjs.app.trade.service.service.business.invoice;

import java.util.List;
import java.util.Map;

import com.yjs.app.trade.entity.base.util.Page;
import com.yjs.app.trade.entity.bean.DispatchInvoice;
import com.yjs.core.common.OperationResult;

/**
 * 发票相关业务层接口
 * 
 * @author Administrator
 *
 */
public interface InvoiceService {

	/**
	 * 通过第三方接口获取扫描的发票数据
	 * 
	 * @return
	 */
	public Object findThirdPartyInvoice();

	/**
	 * 获取平台发票数据
	 * 
	 * @return
	 */
	public Map<String, Object> findPlatFormInovice(Map<String, Object> map);

	/**
	 * 通过比对第三方扫码获取的发票数据和平台发票数据 ,如果数据一致，则确认收票
	 */
	public OperationResult confirmTheReceiptOfInvoice(String invoiceInfoId);
	
	/**
	 * 通过比对第三方扫码获取的发票数据和平台发票数据 ,如果数据一致，则拒绝收票
	 * @param refuseReason 
	 * @param map
	 * @return
	 */
	public OperationResult rejectInvoice(String invoiceInfoId, String refuseReason);
	/**
	 * 配送方查询发票详情
	 * @param page
	 * @param dispatchInvoice
	 * @return
	 */
	public Page<?> findInvoice(Page<DispatchInvoice> page, DispatchInvoice dispatchInvoice);
	/**
	 * 根据发票查询订单信息
	 * @param invoiceInfoId
	 * @return
	 */
	public List<Map<String, Object>> findProductByInvoice(String invoiceInfoId);
	/**
	 * 查询订单数量和药品数量
	 * @param invoiceInfoId
	 * @return
	 */
	public Map<String, Object> findInvoiceNum(String invoiceInfoId);
}
